home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TeX 1995 July
/
TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO
/
systems
/
mac
/
euro-oztex
/
EOT2.1#3.sea.bin
/
TeX-inputs
/
STY
/
amstex.sty
< prev
next >
Wrap
Text File
|
1995-01-04
|
58KB
|
1,693 lines
%%
%% This is file `amstex.sty', generated
%% on <1995/1/4> with the docstrip utility (2.2i).
%%
%% The original source files were:
%%
%% amstex.dtx
%%% ====================================================================
%%% @LaTeX-file{
%%% filename = "amstex.dtx",
%%% version = "1.2beta",
%%% date = "1994/12/22",
%%% time = "15:32:53 EST",
%%% author = "American Mathematical Society",
%%% copyright = "Copyright (C) 1994 American Mathematical Society,
%%% all rights reserved. Copying of this file is
%%% authorized only if either:
%%% (1) you make absolutely no changes to your copy,
%%% including name; OR
%%% (2) if you do make changes, you first rename it
%%% to some other name.",
%%% address = "American Mathematical Society,
%%% Technical Support,
%%% Electronic Products and Services,
%%% P. O. Box 6248,
%%% Providence, RI 02940,
%%% USA",
%%% telephone = "401-455-4080 or (in the USA and Canada)
%%% 800-321-4AMS (321-4267)",
%%% FAX = "401-331-3842",
%%% checksum = "53612 3838 13409 134567",
%%% email = "tech-support@math.ams.org (Internet)",
%%% codetable = "ISO/ASCII",
%%% keywords = "latex, amslatex, ams-latex, math, amstex, ams-tex",
%%% supported = "yes",
%%% abstract = "This is part of the AMS-\LaTeX{} distribution. It
%%% provides a variety of extra mathematical features,
%%% largely derived from AMS-\TeX{}.",
%%% docstring = "The checksum field above contains a CRC-16 checksum
%%% as the first value, followed by the equivalent of
%%% the standard UNIX wc (word count) utility output of
%%% lines, words, and characters. This is produced by
%%% Robert Solovay's checksum utility.",
%%% }
%%% ====================================================================
\ProvidesPackage{amstex}[1994/10/27 v1.2beta AMS extra math features]
\DeclareOption{noamsfonts}{%
\PassOptionsToPackage{noamsfonts}{amsfonts}}
\DeclareOption{psamsfonts}{%
\PassOptionsToPackage{psamsfonts}{amsfonts}}
\DeclareOption{intlimits}{\let\ilimits@\displaylimits}
\DeclareOption{nointlimits}{\let\ilimits@\nolimits}
\DeclareOption{sumlimits}{\let\slimits@\displaylimits}
\DeclareOption{nosumlimits}{\let\slimits@\nolimits}
\DeclareOption{namelimits}{\let\nlimits@\displaylimits}
\DeclareOption{nonamelimits}{\let\nlimits@\nolimits}
\newif\ifctagsplit@
\newif\iftagsleft@
\DeclareOption{leqno}{\tagsleft@true}
\DeclareOption{reqno}{\tagsleft@false}
\DeclareOption{centertags}{\ctagsplit@true}
\DeclareOption{tbtags}{\ctagsplit@false}
\newif\if@fleqn
\newskip\@mathmargin
\@mathmargin\@centering
\DeclareOption{fleqn}{%
\@fleqntrue
\@mathmargin = -1sp
\AtBeginDocument{%
\ifdim\@mathmargin= -1sp
\@mathmargin\leftmargini
\fi
}%
}
\ExecuteOptions{nointlimits,sumlimits,namelimits}
\ProcessOptions
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{amstext}[1994/09/01] % \text
\RequirePackage{amsfonts}[1994/09/01] % \newsymbol, msam, msbm, eufm
\RequirePackage{amsbsy}[1994/09/01] % \boldsymbol
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\AmSTeX{\protect\AmS-\protect\TeX{}}
\def\AmS{{\protect\AmSfont
A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}
\def\AmSfont{%
\usefont{OMS}{cmsy}{\if\@xp\@car\f@series\@nil bb\else m\fi}{n}}
\def\prim@s{\prime\futurelet\@let@token\pr@m@s}
\def\pr@m@s{%
\ifx\@let@token'\DN@##1{\prim@s}\else\let\next@\egroup\fi\next@}
\let\@prime=\prime
\renewcommand{\prime}{{\kern\z@\@prime}}
\DeclareRobustCommand{\mspace}[3]{%
\ifmmode\mskip#1#2\else\kern#1#3\fi\relax}
\renewcommand{\,}{\mspace+\thinmuskip{.1667em}}
\let\thinspace\,
\renewcommand{\!}{\mspace-\thinmuskip{.1667em}}
\let\negthinspace\!
\renewcommand{\:}{\mspace+\medmuskip{.2222em}}
\let\medspace\:
\newcommand{\negmedspace}{\mspace-\medmuskip{.2222em}}
\renewcommand{\;}{\mspace+\thickmuskip{.2777em}}
\let\thickspace\;
\newcommand{\negthickspace}{\mspace-\thickmuskip{.2777em}}
\def\implies{\DOTSB\;\Longrightarrow\;}
\def\impliedby{\DOTSB\;\Longleftarrow\;}
\begingroup \catcode`\"=12 % in case activated by a preceding package
\gdef\And{\DOTSB\;\mathchar"3026 \;}
\gdef\lvert{\delimiter"426A30C }
\gdef\rvert{\delimiter"526A30C }
\gdef\lVert{\delimiter"426B30D }
\gdef\rVert{\delimiter"526B30D }
\endgroup % restore "
\DeclareRobustCommand{\frac}{\new@ifnextchar[{\frfrac{}}{\frfrac{}[]}}
\def\frfrac#1[#2]#3#4{\def\next@{#2}%
\ifx\next@\@empty \def\next@{#1{#3\over#4}}%
\else \def\next@{#1{#3\above#2\relax#4}}%
\fi
\next@}
\def\dfrac{\protect\frfrac\displaystyle[]}
\def\tfrac{\protect\frfrac\textstyle[]}
\DeclareRobustCommand{\binom}{\frbinom{}}
\def\frbinom#1#2#3{#1{#2\atopwithdelims()#3}}
\def\dbinom{\protect\frbinom\displaystyle}
\def\tbinom{\protect\frbinom\textstyle}
\def\colon{\nobreak\mskip2mu\mathpunct{}\nonscript
\mkern-\thinmuskip{:}\mskip6muplus1mu\relax}
\DeclareMathSymbol{\coprod@}{\mathop}{largesymbols}{"60}
\def\coprod{\DOTSB\coprod@\slimits@}
\DeclareMathSymbol{\bigvee@}{\mathop}{largesymbols}{"57}
\def\bigvee{\DOTSB\bigvee@\slimits@}
\DeclareMathSymbol{\bigwedge@}{\mathop}{largesymbols}{"56}
\def\bigwedge{\DOTSB\bigwedge@\slimits@}
\DeclareMathSymbol{\biguplus@}{\mathop}{largesymbols}{"55}
\def\biguplus{\DOTSB\biguplus@\slimits@}
\DeclareMathSymbol{\bigcap@}{\mathop}{largesymbols}{"54}
\def\bigcap{\DOTSB\bigcap@\slimits@}
\DeclareMathSymbol{\bigcup@}{\mathop}{largesymbols}{"53}
\def\bigcup{\DOTSB\bigcup@\slimits@}
\DeclareMathSymbol{\prod@}{\mathop}{largesymbols}{"51}
\def\prod{\DOTSB\prod@\slimits@}
\DeclareMathSymbol{\sum@}{\mathop}{largesymbols}{"50}
\def\sum{\DOTSB\sum@\slimits@}
\DeclareMathSymbol{\bigotimes@}{\mathop}{largesymbols}{"4E}
\def\bigotimes{\DOTSB\bigotimes@\slimits@}
\DeclareMathSymbol{\bigoplus@}{\mathop}{largesymbols}{"4C}
\def\bigoplus{\DOTSB\bigoplus@\slimits@}
\DeclareMathSymbol{\bigodot@}{\mathop}{largesymbols}{"4A}
\def\bigodot{\DOTSB\bigodot@\slimits@}
\DeclareMathSymbol{\bigsqcup@}{\mathop}{largesymbols}{"46}
\def\bigsqcup{\DOTSB\bigsqcup@\slimits@}
\def\dddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
\hbox{\normalfont ...}\vss}}}}
\def\ddddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
\hbox{\normalfont....}\vss}}}}
\def~{\nobreakspace}
\DeclareRobustCommand{\nobreakspace}{\unskip\nobreak\ \ignorespaces}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newif\if@display
\everydisplay\expandafter{\the\everydisplay \@displaytrue}
\def\int{\DOTSI\intop\ilimits@}
\def\oint{\DOTSI\ointop\ilimits@}
\def\intkern@{\mkern-6mu\mathchoice{\mkern-3mu}{}{}{}}
\def\intdots@{\mathchoice{\@cdots}%
{{\cdotp}\mkern1.5mu{\cdotp}\mkern1.5mu{\cdotp}}%
{{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}%
{{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}}
\def\iint{\DOTSI\protect\ints@\tw@}
\def\iiint{\DOTSI\protect\ints@\thr@@}
\def\iiiint{\DOTSI\protect\ints@{4}}
\def\idotsint{\DOTSI\protect\ints@\z@}
\def\ints@#1{%
\mkern-7mu\mathchoice{\mkern-2mu}{}{}{}%
\mathop{\mkern7mu\mathchoice{\mkern2mu}{}{}{}%
\intop\ifnum#1=\z@\intdots@
\else\intkern@\fi
\ifnum#1>\tw@\intop\intkern@\fi
\ifnum#1>\thr@@\intop\intkern@\fi
\intop
}\ilimits@
}
\def\nolimits@{%
\DN@{\nolimits\ifx\@let@token\limits\expandafter\@gobble\fi}%
\FN@\next@}
\begingroup \catcode`\"=12
\gdef\newmcodes@{\mathcode`\'39\mathcode`\*42\mathcode`\."613A%
\mathcode`\-45\mathcode`\/47\mathcode`\:"603A\relax}
\endgroup
\DeclareRobustCommand{\operatorname}{%
\@ifstar{\qopname\newmcodes@ n}%
{\qopname\newmcodes@{no}}}%
\DeclareRobustCommand{\qopname}[3]{\mathop{#1\operator@font#3}%
\csname #2limits@\endcsname}
\def\arccos{\qopname\relax{no}{arccos}}
\def\arcsin{\qopname\relax{no}{arcsin}}
\def\arctan{\qopname\relax{no}{arctan}}
\def\arg{\qopname\relax{no}{arg}}
\def\cos{\qopname\relax{no}{cos}}
\def\cosh{\qopname\relax{no}{cosh}}
\def\cot{\qopname\relax{no}{cot}}
\def\coth{\qopname\relax{no}{coth}}
\def\csc{\qopname\relax{no}{csc}}
\def\deg{\qopname\relax{no}{deg}}
\def\det{\qopname\relax n{det}}
\def\dim{\qopname\relax{no}{dim}}
\def\exp{\qopname\relax{no}{exp}}
\def\gcd{\qopname\relax n{gcd}}
\def\hom{\qopname\relax{no}{hom}}
\def\inf{\qopname\relax n{inf}}
\def\injlim{\qopname\relax n{inj\,lim}}
\def\ker{\qopname\relax{no}{ker}}
\def\lg{\qopname\relax{no}{lg}}
\def\lim{\qopname\relax n{lim}}
\def\liminf{\qopname\relax n{lim\,inf}}
\def\limsup{\qopname\relax n{lim\,sup}}
\def\ln{\qopname\relax{no}{ln}}
\def\log{\qopname\relax{no}{log}}
\def\max{\qopname\relax n{max}}
\def\min{\qopname\relax n{min}}
\def\Pr{\qopname\relax n{Pr}}
\def\projlim{\qopname\relax n{proj\,lim}}
\def\sec{\qopname\relax{no}{sec}}
\def\sin{\qopname\relax{no}{sin}}
\def\sinh{\qopname\relax{no}{sinh}}
\def\sup{\qopname\relax n{sup}}
\def\tan{\qopname\relax{no}{tan}}
\def\tanh{\qopname\relax{no}{tanh}}
\def\operator@font{\mathgroup\symoperators}
\def\operatornamewithlimits{\operatorname*}
\def\varlim@#1#2{\mathop{\vtop{\ialign{##\crcr
\hfil$#1\m@th\operator@font lim$\hfil\crcr
\noalign{\nointerlineskip\kern\ex@}#2#1\crcr
\noalign{\nointerlineskip\kern-\ex@}\crcr}}}}
\def\varinjlim{\mathpalette\varlim@\rightarrowfill@}
\def\varprojlim{\mathpalette\varlim@\leftarrowfill@}
\def\varliminf{\mathpalette\varliminf@{}}
\def\varliminf@#1{\mathop{\@@underline{\vrule\@depth.2\ex@\@width\z@
\hbox{$#1\m@th\operator@font lim$}}}}
\def\varlimsup{\mathpalette\varlimsup@{}}
\def\varlimsup@#1{\mathop{\@@overline
{\hbox{$#1\m@th\operator@font lim$}}}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\numberwithin#1#2{\@ifundefined{c@#1}{\@nocounterr{#1}}{%
\@ifundefined{c@#2}{\@nocnterr{#2}}{%
\@addtoreset{#1}{#2}%
\toks@\expandafter\expandafter\expandafter{\csname the#1\endcsname}%
\expandafter\xdef\csname the#1\endcsname
{\expandafter\noexpand\csname the#2\endcsname
.\the\toks@}}}}
\def\eqref#1{\textup{\tagform@{\ref{#1}}}}
\def\bmod{\mskip-\medmuskip\mkern5mu\mathbin
{\operator@font mod}\penalty900
\mkern5mu\mskip-\medmuskip}
\def\pod#1{\allowbreak\if@display\mkern18mu\else\mkern8mu\fi(#1)}
\def\pmod#1{\pod{{\operator@font mod}\mkern6mu#1}}
\def\mod#1{\allowbreak\if@display\mkern18mu
\else\mkern12mu\fi{\operator@font mod}\,\,#1}
\newcommand{\cfrac}[3][c]{{\displaystyle\frac{%
\strut\ifx r#1\hfill\fi#2\ifx l#1\hfill\fi}{#3}}%
\kern-\nulldelimiterspace}
\def\lcfrac{\@subst@obsolete\lcfrac{\cfrac[l]}}
\def\rcfrac{\@subst@obsolete\rcfrac{\cfrac[r]}}
\def\overset#1#2{\binrel@{#2}%
\binrel@@{\mathop{\kern\z@#2}\limits^{#1}}}
\def\underset#1#2{\binrel@{#2}%
\binrel@@{\mathop{\kern\z@#2}\limits_{#1}}}
\def\sideset#1#2#3{%
\setbox\z@\hbox{$\displaystyle{\vphantom{#3}}#1{#3}\m@th$}%
\setbox\tw@\hbox{$\displaystyle{#3}#2\m@th$}%
\hskip\wd\z@\hskip-\wd\tw@\mathop{\hskip\wd\tw@\hskip-\wd\z@
{\vphantom{#3}}#1{#3}#2}}
\renewcommand{\smash}[2][tb]{%
\def\smash@{#1}%
\ifmmode\expandafter\mathpalette\expandafter\mathsm@sh\else
\expandafter\makesm@sh\fi{#2}}
\def\finsm@sh{\def\mb@t{\ht\z@\z@}\def\mb@b{\dp\z@\z@}%
\def\mb@tb{\mb@t\mb@b}%
{\csname mb@\smash@\endcsname}%
\leavevmode\boxz@}
\def\rightarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@
$#1\copy\z@\mkern-6mu\cleaders
\hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill
\mkern-6mu\mathord\rightarrow$}
\def\leftarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@
$#1\mathord\leftarrow\mkern-6mu\cleaders
\hbox{$#1\mkern-2mu\copy\z@\mkern-2mu$}\hfill
\mkern-6mu\box\z@$}
\def\leftrightarrowfill@#1{\m@th\setboxz@h{$#1-$}\ht\z@\z@
$#1\mathord\leftarrow\mkern-6mu\cleaders
\hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill
\mkern-6mu\mathord\rightarrow$}
\def\overarrow@#1#2#3{\vbox{\ialign{##\crcr#1#2\crcr
\noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#2#3\hfil$\crcr}}}
\def\overrightarrow{\mathpalette{\overarrow@\rightarrowfill@}}
\def\overleftarrow{\mathpalette{\overarrow@\leftarrowfill@}}
\def\overleftrightarrow{\mathpalette{\overarrow@\leftrightarrowfill@}}
\def\underarrow@#1#2#3{%
\vtop{\ialign{##\crcr$\m@th\hfil#2#3\hfil$\crcr
\noalign{\nointerlineskip\kern-.5\ex@}#1#2\crcr}}}
\def\underrightarrow{\mathpalette{\underarrow@\rightarrowfill@}}
\def\underleftarrow{\mathpalette{\underarrow@\leftarrowfill@}}
\def\underleftrightarrow{\mathpalette{\underarrow@\leftrightarrowfill@}}
\let\ifgtest@\iffalse % initial value
\def\gtest@true{\global\let\ifgtest@\iftrue}
\def\gtest@false{\global\let\ifgtest@\iffalse}
\let\DOTSI\relax
\let\DOTSB\relax
\let\DOTSX\relax
{\uccode`7=`\\ \uccode`8=`m \uccode`9=`a \uccode`0=`t \uccode`!=`h
\uppercase{%
\gdef\math@#1#2#3#4#5#6\math@{\gtest@false\ifx 7#1\ifx 8#2%
\ifx 9#3\ifx 0#4\ifx !#5\xdef\meaning@{#6}\gtest@true
\fi\fi\fi\fi\fi}}}
{\uccode`7=`c \uccode`8=`h \uccode`9=`\"
\uppercase{\gdef\mathch@#1#2#3#4#5#6\mathch@{\gtest@false
\ifx 7#1\ifx 8#2\ifx 9#5\gtest@true\xdef\meaning@{9#6}\fi\fi\fi}}}
\newcount\classnum@
\def\getmathch@#1.#2\getmathch@{\classnum@#1 \divide\classnum@4096
\ifcase\number\classnum@\or\or\gdef\thedots@{\dotsb@}\or
\gdef\thedots@{\dotsb@}\fi}
{\uccode`4=`b \uccode`5=`i \uccode`6=`n
\uppercase{\gdef\mathbin@#1#2#3{\relaxnext@
\def\nextii@##1\mathbin@{\ifx\@sptoken\@let@token\gtest@true\fi}%
\gtest@false\DN@##1\mathbin@{}%
\ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}
{\uccode`4=`r \uccode`5=`e \uccode`6=`l
\uppercase{\gdef\mathrel@#1#2#3{\relaxnext@
\def\nextii@##1\mathrel@{\ifx\@sptoken\@let@token\gtest@true\fi}%
\gtest@false\DN@##1\mathrel@{}%
\ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}
{\uccode`5=`m \uccode`6=`a \uccode`7=`c
\uppercase{\gdef\macro@#1#2#3#4\macro@{\gtest@false
\ifx 5#1\ifx 6#2\ifx 7#3\gtest@true
\xdef\meaning@{\macro@@#4\macro@@}\fi\fi\fi}}}
\def\macro@@#1->#2\macro@@{#2}
\newcount\DOTSCASE@
{\uccode`6=`\\ \uccode`7=`D \uccode`8=`O \uccode`9=`T \uccode`0=`S
\uppercase{\gdef\DOTS@#1#2#3#4#5{\gtest@false\DN@##1\DOTS@{}%
\ifx 6#1\ifx 7#2\ifx 8#3\ifx 9#4\ifx 0#5\let\next@\DOTS@@
\fi\fi\fi\fi\fi
\next@}}}
{\uccode`3=`B \uccode`4=`I \uccode`5=`X
\uppercase{\gdef\DOTS@@#1{\relaxnext@
\def\nextii@##1\DOTS@{\ifx\@sptoken\@let@token\gtest@true\fi}%
\DN@{\FN@\nextii@}%
\ifx 3#1\global\DOTSCASE@\z@\else
\ifx 4#1\global\DOTSCASE@\@ne\else
\ifx 5#1\global\DOTSCASE@\tw@\else\DN@##1\DOTS@{}%
\fi\fi\fi\next@}}}
{\uccode`5=`\\ \uccode`6=`n \uccode`7=`o \uccode`8=`t
\uppercase{\gdef\not@#1#2#3#4{\relaxnext@
\def\nextii@##1\not@{\ifx\@sptoken\@let@token\gtest@true\fi}%
\gtest@false\DN@##1\not@{}%
\ifx 5#1\ifx 6#2\ifx 7#3\ifx 8#4\DN@{\FN@\nextii@}\fi\fi\fi
\fi\next@}}}
\def\keybin@{\gtest@true
\ifx\@let@token+\else\ifx\@let@token=\else\ifx\@let@token<\else\ifx\@let@token>\else
\ifx\@let@token-\else
\ifx\@let@token*\else\ifx\@let@token:\else\gtest@false\fi\fi\fi\fi\fi\fi\fi}
\@ifundefined{@ldots}{\def\@ldots{\mathellipsis}}{}
\DeclareRobustCommand{\dots}{\relax
\csname\ifmmode m\else t\fi dots@\endcsname}
\def\tdots@{\leavevmode\unskip\relaxnext@
\DN@{$\m@th\@ldots\,
\ifx\@let@token,\,$\else\ifx\@let@token.\,$\else\ifx\@let@token;\,$\else
\ifx\@let@token:\,$\else
\ifx\@let@token?\,$\else\ifx\@let@token!\,$\else$ \fi\fi\fi\fi\fi\fi}%
\ \FN@\next@}
\def\mdots@{\FN@\mdots@@}
\def\mdots@@{\gdef\thedots@{\dotso@}%
\ifx\@let@token\boldsymbol\gdef\thedots@\boldsymbol{\boldsymboldots@}\else
\ifx,\@let@token\gdef\thedots@{\dotsc}%
\else\ifx\not\@let@token\gdef\thedots@{\dotsb@}%
\else\keybin@
\ifgtest@\gdef\thedots@{\dotsb@}%
\else\xdef\meaning@{\meaning\@let@token..........}\xdef\meaning@@{\meaning@}%
\expandafter\math@\meaning@\math@
\ifgtest@
\expandafter\mathch@\meaning@\mathch@
\ifgtest@\expandafter\getmathch@\meaning@\getmathch@\fi
\else\expandafter\macro@\meaning@@\macro@
\ifgtest@
\expandafter\not@\meaning@\not@\ifgtest@\gdef\thedots@{\dotsb@}%
\else\expandafter\DOTS@\meaning@\DOTS@
\ifgtest@
\ifcase\number\DOTSCASE@\gdef\thedots@{\dotsb@}%
\or\gdef\thedots@{\dotsi}\else\fi
\else\expandafter\math@\meaning@\math@
\ifgtest@\expandafter\mathbin@\meaning@\mathbin@
\ifgtest@\gdef\thedots@{\dotsb@}%
\else\expandafter\mathrel@\meaning@\mathrel@
\ifgtest@\gdef\thedots@{\dotsb@}%
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
\thedots@}
\def\boldsymboldots@#1{\bold@true\let\@let@token=#1\let\delayed@=#1\mdots@@
\boldsymbol#1\bold@false}
\def\@cdots{\mathinner{\cdotp\cdotp\cdotp}}
\def\dotsi{\!\@cdots}
\let\dotsb@\@cdots
\def\rightdelim@{\gtest@true
\ifx\@let@token)\else
\ifx\@let@token]\else
\ifx\@let@token\rbrack\else
\ifx\@let@token\}\else
\ifx\@let@token\rbrace\else
\ifx\@let@token\rangle\else
\ifx\@let@token\rceil\else
\ifx\@let@token\rfloor\else
\ifx\@let@token\rgroup\else
\ifx\@let@token\rmoustache\else
\ifx\@let@token\right\else
\ifx\@let@token\bigr\else
\ifx\@let@token\biggr\else
\ifx\@let@token\Bigr\else
\ifx\@let@token\Biggr\else\gtest@false
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
\def\extra@{%
\rightdelim@\ifgtest@
\else\ifx\@let@token$\gtest@true
\else\xdef\meaning@{\meaning\@let@token..........}%
\expandafter\macro@\meaning@\macro@\ifgtest@
\expandafter\DOTS@\meaning@\DOTS@
\ifgtest@
\ifnum\DOTSCASE@=\tw@\gtest@true\else\gtest@false
\fi\fi\fi\fi\fi}
\newif\ifbold@
\def\dotso@{\relaxnext@
\ifbold@
\let\@let@token\delayed@
\def\nextii@{\extra@\@ldots\ifgtest@\,\fi}%
\else
\def\nextii@{\DN@{\extra@\@ldots\ifgtest@\,\fi}\FN@\next@}%
\fi
\nextii@}
\def\extrap@#1{%
\DN@{#1\,}%
\ifx\@let@token,\else
\ifx\@let@token;\else
\ifx\@let@token.\else\extra@
\ifgtest@\else
\let\next@#1\fi\fi\fi\fi\next@}
\DeclareRobustCommand{\ldots}{\relax
\ifmmode \DN@{\extrap@\@ldots}%
\else \let\next@\tdots@\fi
\FN@\next@}
\DeclareRobustCommand{\cdots}{\DN@{\extrap@\@cdots}\FN@\next@}
\let\dotso\ldots
\let\dotsb\cdots
\let\dotsm\dotsb
\DeclareRobustCommand{\dotsc}{%
\DN@{\ifx\@let@token;\@ldots\,%
\else \ifx\@let@token.\@ldots\,%
\else \extra@\@ldots \ifgtest@\,\fi
\fi\fi}%
\FN@\next@}
\def\longrightarrow{\DOTSB\relbar\joinrel\rightarrow}
\def\Longrightarrow{\DOTSB\Relbar\joinrel\Rightarrow}
\def\longleftarrow{\DOTSB\leftarrow\joinrel\relbar}
\def\Longleftarrow{\DOTSB\Leftarrow\joinrel\Relbar}
\def\longleftrightarrow{\DOTSB\leftarrow\joinrel\rightarrow}
\def\Longleftrightarrow{\DOTSB\Leftarrow\joinrel\Rightarrow}
\def\mapsto{\DOTSB\mapstochar\rightarrow}
\def\longmapsto{\DOTSB\mapstochar\longrightarrow}
\def\hookrightarrow{\DOTSB\lhook\joinrel\rightarrow}
\def\hookleftarrow{\DOTSB\leftarrow\joinrel\rhook}
\def\doteq{\DOTSB\buildrel\textstyle.\over=}
\def\iff{\DOTSB\;\Longleftrightarrow\;}
\mathchardef\@tempa=\string"7000
\ifx\@tempa\Gamma
\DeclareMathSymbol{\Gamma}{\mathord}{operators}{"00}
\DeclareMathSymbol{\Delta}{\mathord}{operators}{"01}
\DeclareMathSymbol{\Theta}{\mathord}{operators}{"02}
\DeclareMathSymbol{\Lambda}{\mathord}{operators}{"03}
\DeclareMathSymbol{\Xi}{\mathord}{operators}{"04}
\DeclareMathSymbol{\Pi}{\mathord}{operators}{"05}
\DeclareMathSymbol{\Sigma}{\mathord}{operators}{"06}
\DeclareMathSymbol{\Upsilon}{\mathord}{operators}{"07}
\DeclareMathSymbol{\Phi}{\mathord}{operators}{"08}
\DeclareMathSymbol{\Psi}{\mathord}{operators}{"09}
\DeclareMathSymbol{\Omega}{\mathord}{operators}{"0A}
\DeclareMathSymbol{\varGamma}{\mathord}{letters}{"00}
\DeclareMathSymbol{\varDelta}{\mathord}{letters}{"01}
\DeclareMathSymbol{\varTheta}{\mathord}{letters}{"02}
\DeclareMathSymbol{\varLambda}{\mathord}{letters}{"03}
\DeclareMathSymbol{\varXi}{\mathord}{letters}{"04}
\DeclareMathSymbol{\varPi}{\mathord}{letters}{"05}
\DeclareMathSymbol{\varSigma}{\mathord}{letters}{"06}
\DeclareMathSymbol{\varUpsilon}{\mathord}{letters}{"07}
\DeclareMathSymbol{\varPhi}{\mathord}{letters}{"08}
\DeclareMathSymbol{\varPsi}{\mathord}{letters}{"09}
\DeclareMathSymbol{\varOmega}{\mathord}{letters}{"0A}
\fi
\def\accentclass@{7}
\def\noaccents@{\def\accentclass@{0}}
\DeclareFontEncoding{OML}{}{\noaccents@}
\DeclareFontEncoding{OMS}{}{\noaccents@}
\edef\@tempa#1#2{\def#1{\mathaccent\string"\noexpand\accentclass@#2 }}
\@tempa\hat{05E}
\@tempa\check{014}
\@tempa\tilde{07E}
\@tempa\acute{013}
\@tempa\grave{012}
\@tempa\dot{05F}
\@tempa\ddot{07F}
\@tempa\breve{015}
\@tempa\bar{016}
\newcount\skewcharcount@
\newcount\familycount@
\def\theskewchar@{\familycount@\@ne
\global\skewcharcount@\the\skewchar\textfont\@ne
\ifnum\mathgroup>\m@ne\ifnum\mathgroup<16
\global\familycount@\the\mathgroup\relax
\global\skewcharcount@\the\skewchar\textfont\the\mathgroup\relax\fi\fi
\ifnum\skewcharcount@>\m@ne
\ifnum\skewcharcount@<128
\multiply\familycount@256
\global\advance\skewcharcount@\familycount@
\global\advance\skewcharcount@28672
\mathchar\skewcharcount@\else
\global\skewcharcount@\m@ne\fi\else
\global\skewcharcount@\m@ne\fi}
\newcount\pointcount@
\def\getpoints@#1.#2\getpoints@{\pointcount@#1 }
\newdimen\accentdimen@
\newcount\accentmu@
\def\dimentomu@{\multiply\accentdimen@ 100
\expandafter\getpoints@\the\accentdimen@\getpoints@
\multiply\pointcount@18
\divide\pointcount@\@m
\global\accentmu@\pointcount@}
\def\mathaccent@#1#2{\ifnum\mathgroup=\m@ne\xdef\thefam@{1}\else
\xdef\thefam@{\the\mathgroup}\fi
\accentdimen@\z@
\setboxz@h{\unbracefonts@$\m@th\mathgroup\thefam@\relax#2$}%
\ifdim\accentdimen@=\z@\DN@{\mathaccent#1{#2}}%
\setbox\@ne\hbox{\unbracefonts@
$\m@th\mathgroup\thefam@\relax#2\theskewchar@$}
\setbox\tw@\hbox{$\m@th\ifnum\skewcharcount@=\m@ne\else
\mathchar\skewcharcount@\fi$}%
\global\accentdimen@\wd\@ne\global\advance\accentdimen@-\wdz@
\global\advance\accentdimen@-\wd\tw@
\global\multiply\accentdimen@\tw@
\dimentomu@\global\advance\accentmu@\@ne
\else\DN@{{\mathaccent#1{#2\mkern\accentmu@ mu}%
\mkern-\accentmu@ mu}{}}\fi
\next@}
\def\unbracefonts@{\let\math@bgroup\@empty\let\math@egroup\@empty}
\begingroup \catcode`\"=12
\def\@tempa#1#2{\gdef#1{\RIfM@\DN@{\mathaccent@{"\accentclass@#2 }}%
\else\DN@{\nonmatherr@{#1}}\fi\next@}}
\@tempa\Hat{05E}
\@tempa\Check{014}
\@tempa\Tilde{07E}
\@tempa\Acute{013}
\@tempa\Grave{012}
\@tempa\Dot{05F}
\@tempa\Ddot{07F}
\@tempa\Breve{015}
\@tempa\Bar{016}
\gdef\Vec{\RIfM@\DN@{\mathaccent@{"017E }}\else
\DN@{\nonmatherr@\Vec}\fi\next@}
\endgroup
\begingroup \catcode`\"=12
\gdef\@@sqrt#1{\radical"270370 {#1}}
\endgroup
\@saveprimitive\overline\@@overline
\def\overline#1{\@@overline{#1}}
\def\boxed#1{\fbox{\m@th$\displaystyle#1$}}
\def\setb@ck{\iffirstchoice@\global\advance\c@equation\m@ne\fi}
\newcount\dspbrk@lvl
\dspbrk@lvl=-1
\interdisplaylinepenalty\@M
\def\allowdisplaybreaks{%
\new@ifnextchar[\allowdspbrks@{\allowdspbrks@[4]}}
\def\allowdspbrks@[#1]{%
\interdisplaylinepenalty\getdsp@pen{#1}}
\def\getdsp@pen#1{%
\ifcase #1\relax \@M
\or 9999
\or 6999
\or 2999
\or \z@\fi}
\def\displaybreak{\PackageError{amstex}{\Invalid@@\displaybreak}\@eha}
\def\displaybreak@{%
\def\displaybreak{\new@ifnextchar[\dspbrk@{\dspbrk@[4]}}}
\def\dspbrk@[#1]{\global\dspbrk@lvl #1\relax}
\def\math@cr{{\ifnum0=`}\fi
\new@ifstar{\global\@eqpen\@M\math@cr@}%
{\global\@eqpen
\ifnum\dspbrk@lvl <\z@ \interdisplaylinepenalty
\else -\@getpen\dspbrk@lvl \fi
\math@cr@}}
\def\math@cr@{\new@ifnextchar[\math@cr@@{\math@cr@@[\z@]}}
\def\math@cr@@[#1]{\ifnum0=`{\fi}\math@cr@@@
\noalign{\vskip#1\relax}}
\def\Let@{\let\\\math@cr}
\def\restore@math@cr{\def\math@cr@@@{\cr}}
\restore@math@cr
\def\intertext{\PackageError{amstex}{\Invalid@@\intertext}\@eha}
\def\intertext@{\def\intertext##1{\noalign{%
\penalty\postdisplaypenalty\vskip\belowdisplayskip
\vbox{\normalbaselines\noindent##1}%
\penalty\predisplaypenalty\vskip\abovedisplayskip}}}
\newhelp\tag@help
{tag cannot be used at this point.\space
If you don't understand why^^Jyou should consult
the documentation.^^JBut don't worry: just continue, and I'll
forget what happened.}
\def\gobble@tag{\new@ifstar\@gobble\@gobble}
\def\invalid@tag#1{\PackageError{amstex}{#1}{\the\tag@help}\gobble@tag}
\def\dft@tag{\invalid@tag{\string\tag\space not allowed here}}
\def\default@tag{\let\tag\dft@tag}
\default@tag
\def\maketag@@{\new@ifstar\maketag@@@\tagform@}
\def\maketag@@@#1{\hbox{\m@th\normalfont#1}}
\def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip)}}
\def\thetag{\leavevmode\tagform@}
\def\make@df@tag{\new@ifstar\make@df@tag@@\make@df@tag@@@}
\def\make@df@tag@@#1{%
\def\@currentlabel{#1}%
\gdef\df@tag{\maketag@@@{#1}}}
\def\make@df@tag@@@#1{\@seteqlabel{#1}\gdef\df@tag{\tagform@{#1}}}
\def\@seteqlabel#1{\toks@\@xp{\p@equation{#1}}%
\edef\@currentlabel{\the\toks@}}
\def\notag{\nonumber}
\iftagsleft@
\def\@eqnnum{\hbox to1sp{}\rlap{\normalfont
\hskip -\displaywidth\tagform@\theequation}}
\fi
\let\@adjusttag\@empty
\def\adjusttag#1{\skip@#1\relax\gdef\@adjusttag{#1}}
\def\@movetag{%
\ifx\@adjusttag\@empty \else
\vskip\@adjusttag\relax
\global\let\@adjusttag\@empty
\fi
}
\def\multilimits@{\bgroup
\Let@
\restore@math@cr
\default@tag
\baselineskip\fontdimen10 \scriptfont\tw@
\advance\baselineskip\fontdimen12 \scriptfont\tw@
\lineskip\thr@@\fontdimen8 \scriptfont\thr@@
\lineskiplimit\lineskip
\vbox\bgroup\ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil\crcr}
\def\Sb{_\multilimits@}
\def\Sp{^\multilimits@}
\def\endSb{\crcr\egroup\egroup\egroup}
\let\endSp=\endSb
\def\smallmatrix{\null\,\vcenter\bgroup
\Let@\restore@math@cr\default@tag
\baselineskip6\ex@ \lineskip1.5\ex@ \lineskiplimit\lineskip
\ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil&&\thickspace\hfil
$\m@th\scriptstyle{##}$\hfil\crcr}
\def\endsmallmatrix{\crcr\egroup\egroup\,}
\newcount\c@MaxMatrixCols
\c@MaxMatrixCols=10
\def\matrix{\hskip -\arraycolsep\array{*\c@MaxMatrixCols c}}
\def\endmatrix{\endarray \hskip -\arraycolsep}
\@ifundefined{prepnext@tok}{%
\def\@array[#1]#2{%
\setbox\@arstrutbox\hbox{\vrule\@height\arraystretch\ht\strutbox
\@depth\arraystretch\dp\strutbox \@width\z@}%
\@mkpream{#2}\edef\@preamble{\ialign \noexpand\@halignto
\bgroup \tabskip\z@ \@arstrut \@preamble \tabskip\z@ \cr}%
\let\@startpbox\@@startpbox \let\@endpbox\@@endpbox
\if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
\bgroup \let\par\@empty
\let\@sharp##\let\protect\relax
\lineskip\z@\baselineskip\z@\@preamble}%
\begingroup \lccode`\~=`\@ \catcode`\~=\active % just to be sure!
\lowercase{%
\gdef\@xexpast#1*#2#3#4\@@{\begingroup
\def~{@}\edef\reserved@a{#1}\@tempcnta#2\relax
\ifnum\@tempcnta >\z@
\@whilenum\@tempcnta >\z@\do
{\edef\reserved@a{\reserved@a#3}\advance\@tempcnta \m@ne}%
\let\reserved@b\@xexpast
\else \let\reserved@b\@xexnoop\fi
\expandafter\reserved@b \reserved@a #4\@@
\expandafter\endgroup
\expandafter\def\expandafter\reserved@a\expandafter{\reserved@a}%
\let\@tempa\reserved@a
}% End of \@xexpast
}% End of \lowercase
\endgroup
}{}% End of \@ifundefined test.
\def\pmatrix{\left(\matrix}
\def\endpmatrix{\endmatrix\right)}
\def\bmatrix{\left[\matrix}
\def\endbmatrix{\endmatrix\right]}
\def\vmatrix{\left|\matrix}
\def\endvmatrix{\endmatrix\right|}
\def\Vmatrix{\left\|\matrix}
\def\endVmatrix{\endmatrix\right\|}
\let\hdots\@ldots
\def\hdotsfor#1{\if\noexpand#1[\expandafter\shdots@for\else
\hdots@for\@ne{#1}\fi}
\newmuskip\dotsspace@
\def\shdots@for#1]{\hdots@for{#1}}
\def\hdots@for#1#2{\multicolumn{#2}c%
{\m@th\dotsspace@1.5mu\mkern-#1\dotsspace@
\xleaders\hbox{$\m@th\mkern#1\dotsspace@.\mkern#1\dotsspace@$}%
\hfill
\mkern-#1\dotsspace@}%
}
\def\cases{\left\{\def\arraystretch{1.2}\hskip-\arraycolsep
\array{l@{\quad}l}}
\def\endcases{\endarray\hskip-\arraycolsep\right.}
\newif\ifinany@
\newif\ifinalign@
\newif\ifingather@
\newcount\and@
\newif\iftag@
\newhelp\andhelp@
{An extra & here is so disastrous that you should probably exit^^J
and fix things up.}
\newif\ifst@rred
\newtoks\@envbody
\def\addto@envbody#1{\@envbody\expandafter{\the\@envbody#1}}
\def\collect@body#1{%
\@envbody{}%
\def\process@envbody{%
\expandafter#1\expandafter{\the\@envbody}}%
\expandafter\let\csname\@currenvir\endcsname\collect@@body
\csname\@currenvir\endcsname}
\def\collect@@body#1\end#2{%
\def\@tempa{#2}%
\ifx\@tempa\@currenvir
\addto@envbody{#1}%
\expandafter\edef\csname\@currenvir\endcsname
{\noexpand\process@envbody\noexpand\end{\@tempa}}%
\else
\addto@envbody{#1\end{#2}}%
\fi
\csname\@currenvir\endcsname}
\def\aligned{\RIfM@\else\nonmatherr@{\begin{aligned}}\fi
\null\,\new@ifnextchar[{\aligned@}{\aligned@[c]}}
\def\aligned@[#1]{%
\if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
\bgroup
\Let@\restore@math@cr
\default@tag
\ifinany@\else\openup\jot\fi
\ialign\bgroup\hfil\strut@$\m@th\displaystyle{##}$&%
$\m@th\displaystyle{{}##}$\hfil\crcr}
\def\endaligned{\crcr\egroup\egroup}
\newtoks\hashtoks@
\hashtoks@{#}
\newcount\atcount@
\def\doat@#1{\toks@{\hfil\strut@$\m@th
\displaystyle{\the\hashtoks@}$&$\m@th\displaystyle
{{}\the\hashtoks@}$\hfil}%
\atcount@#1\relax\advance\atcount@\m@ne
\loop\ifnum\atcount@>\z@\toks@\expandafter{\the\toks@&\hfil$\m@th
\displaystyle{\the\hashtoks@}$&$\m@th
\displaystyle{{}\the\hashtoks@}$\hfil}\advance
\atcount@\m@ne\repeat
\xdef\preamble@{\the\toks@}\xdef\preamble@@{\preamble@}}
\def\alignedat#1{\null\,\vcenter\bgroup\doat@{#1}\Let@
\restore@math@cr\default@tag
\ifinany@\else\openup\jot\fi\ialign\bgroup\span\preamble@@\crcr}
\let\endalignedat =\endaligned
\def\gathered{\RIfM@\else\nonmatherr@{\begin{gathered}}\fi
\null\,\vcenter\bgroup\Let@\restore@math@cr
\ifinany@\else\openup\jot\fi\ialign
\bgroup\hfil\strut@$\m@th\displaystyle{##}$\hfil\crcr}
\let\endgathered =\endaligned
\def\tag@in@align{\relax
\iftag@\DN@{\invalid@tag{Multiple \string\tag}}\else
\global\tag@true
\if@eqnsw\global\@eqnswfalse\fi
\let\next@\make@df@tag\fi
\next@}
\def\math@cr@@@align{%
\if@eqnsw\global\tag@true\fi
\iftag@
\ifcase\and@
\DN@{&&}\else
\DN@{&}\fi\else
\let\next@\relax\fi
\next@
\relax
\if@eqnsw\tagform@\theequation\stepcounter{equation}\else
\iftag@\df@tag\fi\fi
\global\@eqnswtrue\cr}
\def\Tag@{\relax\iftag@\else\firstchoice@true
\PackageError{amstex}{%
Extra & on this line%
}{\the\andhelp@% "An extra & here is disastrous"
}\fi}
\newdimen\lwidth@
\newdimen\rwidth@
\newdimen\maxlwidth@
\newdimen\maxrwidth@
\newdimen\totwidth@
\def\measure@#1{\lwidth@\z@\rwidth@\z@\maxlwidth@\z@\maxrwidth@\z@
\global\and@\z@
\setbox\@ne\vbox{%
\everycr{\noalign{\global\tag@false\global\and@\z@}}\Let@
\let\tag\gobble@tag
\let\notag\@empty \let\nonumber\@empty
\firstchoice@false
\halign{\setboxz@h{$\m@th\displaystyle{\@lign##}$}%
\global\lwidth@\wdz@
\ifdim\lwidth@>\maxlwidth@\global\maxlwidth@\lwidth@\fi
\global\advance\and@\@ne
&\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}%
\global\rwidth@\wdz@
\ifdim\rwidth@>\maxrwidth@\global\maxrwidth@\rwidth@\fi
\global\advance\and@\@ne
&\Tag@\@gobble{##}\crcr#1\crcr}}%
\totwidth@\maxlwidth@\advance\totwidth@\maxrwidth@}
\def\displ@y{\global\dt@ptrue\openup\jot\m@th
\everycr{\noalign{\ifdt@p \global\dt@pfalse
\vskip-\lineskiplimit \vskip\normallineskiplimit
\else \penalty\@eqpen \fi}}}
\def\displ@y@{\global\dt@ptrue\openup\jot
\everycr{\noalign{\global\tag@false
\global\and@\z@
\global\dspbrk@lvl\m@ne
\ifdt@p\global\dt@pfalse
\vskip-\lineskiplimit\vskip\normallineskiplimit\else
\penalty\@eqpen\fi}}}
\def\black@#1{\noalign{\ifdim#1>\displaywidth
\dimen@\prevdepth\nointerlineskip
\vskip-\ht\strutbox@\vskip-\dp\strutbox@
\vbox{\noindent\hbox to#1{\strut@\hfill}}%
\prevdepth\dimen@
\fi}}
\def\align{\ifingather@
{\ifnum0=`}\fi
\DN@{\@nameuse{align (in \string\gather)}}%
\else \ifmmode\nomath@env
\DN@{\let\endalign\relax\@gobble}\else
$$\stepcounter{equation}%
\st@rredfalse\let\next@\align@\fi\fi
\collect@body\next@}
\@namedef{align*}{\ifingather@
{\ifnum0=`}\fi
\DN@{\@nameuse{align* (in \string\gather)}}\else
\ifmmode\nomath@env
\DN@{\@namedef{endalign*}{}\@gobble}\else
$$\st@rredtrue
\let\next@\align@\fi\fi
\collect@body\next@}
\newdimen\lineht@
\def\align@{\inalign@true\inany@true
\displaybreak@\intertext@
\let\math@cr@@@\math@cr@@@align
\let\tag\tag@in@align
\global\and@\z@\global\dspbrk@lvl\m@ne
\iftagsleft@\DN@{\@nameuse{align }}\else
\DN@{\@nameuse{align \space}}\fi\next@}
\@namedef{align }#1{%
\measure@{#1}%
\global\and@\z@
\global\dspbrk@lvl\m@ne
\if@fleqn %%*F
\advance\totwidth@\@mathmargin %%*F
\fi %%*F
\ifdim\totwidth@>\displaywidth
\let\displaywidth@\totwidth@
\else
\let\displaywidth@\displaywidth
\fi
\ifingather@
\everycr{%
\noalign{%
\global\and@\z@
\global\dspbrk@lvl\m@ne
}%
}%
\else
\displ@y@
\fi
\Let@
\ifst@rred\else\@seteqlabel\theequation\fi
\tabskip\@mathmargin %%*F
\dimen@\displaywidth %%*F
\if@fleqn %%*F
\ifingather@ %%*F
\tabskip\z@skip %%*F
\advance\dimen@-\@mathmargin %%*F
\fi %%*F
\fi %%*F
\halign to\dimen@\bgroup %%*F
\ifst@rred\nonumber\fi
\hfil
\strut@
\setboxz@h{\global\tag@false$\m@th\displaystyle{\@lign##}$}%
\global\lwidth@\wdz@
\global\lineht@\ht\z@
\boxz@
\global\advance\and@\@ne
\tabskip\z@skip
&\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}%
\global\rwidth@\wdz@
\ifdim\ht\z@>\lineht@
\global\lineht@\ht\z@
\fi
\boxz@
\hfil
\global\advance\and@\@ne
\tabskip\@centering
&\kern-\displaywidth@
\setboxz@h{\@lign\strut@{##}}%
\if@fleqn %%*F
\dimen@\@mathmargin %%*F
\advance\dimen@\maxlwidth@ %%*F
\advance\dimen@-\lwidth@ %%*F
\else %%*F
\dimen@\displaywidth
\advance\dimen@-\totwidth@
\divide\dimen@\tw@
\advance\dimen@\maxlwidth@
\advance\dimen@-\lwidth@
\fi %%*F
\ifdim\dimen@<\tw@\wdz@
\rlap{\vbox{\normalbaselines\boxz@\vbox to\lineht@{}}}%
\else
\rlap{\boxz@}%
\fi
\tabskip\displaywidth@
\crcr
#1%
}
\@namedef{align \space}#1{%
\measure@{#1}%
\if@fleqn %%*F
\advance\totwidth@\@mathmargin %%*F
\fi %%*F
\global\and@\z@
\global\dspbrk@lvl\m@ne
\ifingather@
\everycr{\noalign{\global\and@\z@\global\dspbrk@lvl\m@ne}}%
\else
\displ@y@
\fi
\Let@
\ifst@rred\else\@seteqlabel\theequation\fi
\tabskip\@mathmargin %%*F
\dimen@\displaywidth %%*F
\if@fleqn %%*
\ifingather@ %%*F
\tabskip\z@skip %%*F
\advance\dimen@-\@mathmargin %%*F
\fi %%*F
\fi %%*F
\halign to\dimen@\bgroup %%*F
\ifst@rred\nonumber\fi
\hfil
\strut@
\setboxz@h{\global\tag@false$\m@th\displaystyle{\@lign##}$}%
\global\lwidth@\wdz@\boxz@
\global\advance\and@\@ne
\tabskip\z@skip
&\setboxz@h{$\m@th\displaystyle{{}\@lign##}$}%
\global\rwidth@\wdz@
\boxz@
\hfill
\global\advance\and@\@ne
\tabskip\@centering
&\setboxz@h{\@lign\strut@{##}}%
\dimen@\displaywidth
\advance\dimen@-\totwidth@
\divide\dimen@\tw@
\advance\dimen@\maxrwidth@
\advance\dimen@-\rwidth@
\ifdim\dimen@<\tw@\wdz@
\llap{\vtop{\@movetag\normalbaselines\null\boxz@}}%%*T
\else
\llap{\boxz@}%
\fi
\tabskip\z@skip
\crcr#1%
}
\def\endalign{\math@cr@@@align
\black@\totwidth@
\egroup$$\global\@ignoretrue\setb@ck}
\@namedef{endalign*}{\math@cr@@@align\black@\totwidth@
\egroup$$\global\@ignoretrue}
\@namedef{align (in \string\gather)}{%
\ifst@rred\stepcounter{equation}\fi
\def\endalign{\@nameuse{endalign (in \string\gather)}\ifnum0=`{\fi}}%
\vcenter\bgroup\st@rredfalse
\collect@body\align@}
\@namedef{endalign (in \string\gather)}{%
\math@cr@@@align\black@\totwidth@
\egroup\egroup
\ifst@rred\setb@ck\fi% this ifst@rred is set by the enclosing gather
\global\tag@false\global\@eqnswfalse}
\@namedef{align* (in \string\gather)}{%
\@namedef{endalign*}{\@nameuse{endalign* (in \string\gather)}%
\ifnum0=`{\fi}}%
\vcenter\bgroup\st@rredtrue
\collect@body\align@}
\@namedef{endalign* (in \string\gather)}{%
\math@cr@@@align\black@\totwidth@\egroup\egroup
\global\tag@false\global\@eqnswfalse}
\newif\ifxat@
\def\alignat#1{%
\ifmmode\nomath@env\DN@{\let\endalignat\relax\@gobble}\else$$%
\st@rredfalse\stepcounter{equation}\@seteqlabel\theequation
\DN@{\@nameuse{alignat }#1}\fi
\collect@body\next@}
\@namedef{alignat*}#1{%
\ifmmode\nomath@env\DN@{\@namedef{endalignat*}{}\@gobble}\else$$%
\st@rredtrue
\DN@{\@nameuse{alignat }#1}\fi
\collect@body\next@}
\newif\ifmeasuring@
\newbox\savealignat@
\def\math@cr@@@alignat{%
\if@eqnsw\global\tag@true\fi
\iftag@
\multiply\count@\tw@
\xdef\next@{}\loop\ifnum\count@>\and@\xdef\next@{&\next@}%
\advance\count@\m@ne\repeat\else
\let\next@\relax\fi
\next@
\relax
\if@eqnsw\tagform@\theequation\stepcounter{equation}\else
\iftag@\df@tag\fi\fi
\global\@eqnswtrue\cr}%
\@namedef{alignat }#1#2{%
\inany@true
\xat@false
\let\tag\tag@in@align
\def\math@cr@@@{\count@#1\relax \math@cr@@@alignat}%
\displaybreak@
\intertext@
\displ@y@
\ifst@rred
\global\@eqnswfalse
\else
\global\@eqnswtrue
\fi
\measuring@true
\setbox\savealignat@\hbox{%
$\m@th\displaystyle\Let@
\attag@{#1}%
\vbox{\firstchoice@false\halign{\span\preamble@@\crcr#2\crcr}}$%
}%
\measuring@false
\Let@
\attag@{#1}%
\tabskip\@mathmargin %%*F
\halign to\displaywidth\bgroup
\span\preamble@@\crcr
#2%
}
\def\endalignat{\math@cr@@@\black@{\wd\savealignat@}%
\egroup\setb@ck$$\global\@ignoretrue}
\@namedef{endalignat*}{\math@cr@@@\black@{\wd\savealignat@}\egroup
$$\global\@ignoretrue}
\def\xalignat#1{%
\ifmmode\nomath@env\DN@{\let\endxalignat\relax\@gobble}\else$$%
\st@rredfalse\stepcounter{equation}\@seteqlabel\theequation
\DN@{\@nameuse{xalignat }#1}\fi
\collect@body\next@}
\@namedef{xalignat*}#1{%
\ifmmode\nomath@env\DN@{\@namedef{endxalignat*}{}\@gobble}\else$$%
\st@rredtrue
\DN@{\@nameuse{xalignat }#1}\fi
\collect@body\next@}
\let\endxalignat=\endalignat
\expandafter\let\csname endxalignat*\expandafter
\endcsname\csname endalignat*\endcsname
\@namedef{xalignat }#1#2{%
\inany@true
\xat@true
\let\tag\tag@in@align
\def\math@cr@@@{\count@#1\relax\math@cr@@@alignat}%
\displaybreak@
\intertext@
\displ@y@
\measuring@true
\setbox\savealignat@\hbox{%
$\m@th\displaystyle\Let@
\attag@{#1}%
\vbox{%
\firstchoice@false
\halign{\span\preamble@@\crcr#2\crcr}%
}%
$%
}%
\measuring@false
\Let@
\attag@{#1}%
\tabskip\@mathmargin %%*F
\halign to\displaywidth\bgroup
\span\preamble@@\crcr#2%
}
\def\attag@#1{%
\let\TAG@\Tag@\let\Tag@0%
\ifmeasuring@\def\llap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}%
\def\rlap@##1{\setboxz@h{##1}\hbox to\tw@\wdz@{}}\else
\let\llap@\llap\let\rlap@\rlap\fi
\toks@{\hfil\strut@$\m@th\displaystyle{\@lign\the\hashtoks@}$%
\tabskip\z@skip
\global\advance\and@\@ne
&$\m@th\displaystyle{{}\@lign\the\hashtoks@}$\hfil
\ifxat@\tabskip\@centering\fi\global\advance\and@\@ne}%
\iftagsleft@
\@temptokena{\tabskip\@centering&\Tag@\kern-\displaywidth
\rlap@{\@lign
\the\hashtoks@
}%
\global\advance\and@\@ne\tabskip\displaywidth}\else
\@temptokena{\tabskip\@centering&\Tag@\llap@{\@lign
\the\hashtoks@
}\global\advance\and@\@ne\tabskip\z@skip}\fi
\atcount@#1\relax\advance\atcount@\m@ne
\loop\ifnum\atcount@>\z@
\toks@\expandafter{\the\toks@&\hfil$\m@th\displaystyle{\@lign
\the\hashtoks@}$\global\advance\and@\@ne
\tabskip\z@skip
&$\m@th\displaystyle{{}\@lign\the\hashtoks@}$\hfil\ifxat@
\tabskip\@centering\fi\global\advance\and@\@ne}\advance\atcount@\m@ne
\repeat
\xdef\preamble@{\the\toks@\the\@temptokena}%
\xdef\preamble@@{\ifst@rred\noexpand\nonumber\fi\preamble@}%
\let\Tag@\TAG@}
\def\xxalignat#1{%
\ifmmode\nomath@env\DN@{\let\endxxalignat\relax\@gobble}\else$$%
\DN@{\@nameuse{xxalignat }#1}\fi
\collect@body\next@}
\@namedef{xxalignat }#1#2{\inany@true
\displaybreak@\intertext@
\displ@y\setbox\savealignat@\hbox{$\m@th\displaystyle\Let@
\xxattag@{#1}%
\vbox{\firstchoice@false\halign{\span\preamble@@\crcr#2\crcr}}$}%
\Let@\xxattag@{#1}\tabskip\z@skip\halign to\displaywidth\bgroup
\span\preamble@@\crcr#2}
\expandafter\let\expandafter\endxxalignat\csname endxalignat*\endcsname
\def\xxattag@#1{\toks@{\tabskip\z@skip\hfil\strut@
$\m@th\displaystyle{\the\hashtoks@}$&%
$\m@th\displaystyle{{}\the\hashtoks@}$\hfil\tabskip\@centering&}%
\atcount@#1\relax\advance\atcount@\m@ne\loop\ifnum\atcount@>\z@
\toks@
\expandafter
{\the\toks@&\hfil$\m@th\displaystyle{\the\hashtoks@}$%
\tabskip\z@skip&$\m@th\displaystyle{{}\the\hashtoks@}$\hfil
\tabskip\@centering}\advance\atcount@\m@ne\repeat
\xdef\preamble@{\the\toks@\tabskip\z@skip}\xdef\preamble@@{\preamble@}}
\newdimen\gwidth@
\newdimen\gmaxwidth@
\def\gmeasure@#1{\gwidth@\z@\gmaxwidth@\z@\setbox\@ne\vbox{\Let@
\firstchoice@false\let\tag\gobble@tag
\halign{\setboxz@h{$\m@th\displaystyle{##}$}\global\gwidth@\wdz@
\ifdim\gwidth@>\gmaxwidth@\global\gmaxwidth@\gwidth@\fi
&\@gobble{##}\crcr#1\crcr}}}
\def\math@cr@@@gather{%
\if@eqnsw\global\tag@true\fi
\iftag@
\DN@{&\relax \if@eqnsw
\tagform@\theequation \stepcounter{equation}%
\else\iftag@\df@tag\fi\fi}%
\else
\expandafter\@gobble\fi
\next@
\global\@eqnswtrue\cr}
\def\gather{%
\ifmmode\nomath@env\DN@{\let\endgather\relax\@gobble}\else $$%
\ingather@true\inany@true
\stepcounter{equation}%
\let\tag\tag@in@align\st@rredfalse
\displaybreak@\intertext@
\displ@y
\Let@\@seteqlabel\theequation
\let\math@cr@@@\math@cr@@@gather
\iftagsleft@\DN@{\@nameuse{gather }}\else
\DN@{\@nameuse{gather \space}}\fi\fi
\collect@body\next@}
\@namedef{gather*}{%
\ifmmode\nomath@env\DN@{\@namedef{endgather*}{}\@gobble}\else $$%
\ingather@true\inany@true
\let\tag\tag@in@align\st@rredtrue
\displaybreak@\intertext@
\displ@y\Let@
\let\math@cr@@@\math@cr@@@gather
\iftagsleft@\DN@{\@nameuse{gather }}\else
\DN@{\@nameuse{gather \space}}\fi\fi
\collect@body\next@}
\newdimen\glineht@
\@namedef{gather \space}#1{%
\gmeasure@{#1}%
\if@fleqn %%*F
\advance\gmaxwidth@\@mathmargin %%*F
\fi %%*F
\global\dt@ptrue
\tabskip\@mathmargin %%*F
\halign to\displaywidth\bgroup
\ifst@rred\nonumber\else\global\@eqnswtrue\fi
\if@fleqn\else\hfil\fi %%*F
\strut@
\setboxz@h{\global\tag@false$\m@th\displaystyle{##}$}%
\global\gwidth@\wdz@\boxz@
\hfil
\tabskip\@centering %%*F
&\setboxz@h{\strut@{##}}%
\dimen@\displaywidth
\advance\dimen@-\gwidth@
\if@fleqn %%*F
\advance\dimen@-\@mathmargin %%*F
\else %%*F
\divide\dimen@\tw@ %%*B
\fi %%*F
\ifdim\dimen@<\tw@\wdz@ %%*
\llap{\vtop{\@movetag\normalbaselines\null\boxz@}}%%*T %%*
\else
\llap{\boxz@}% %%*
\fi
\tabskip\z@skip
\crcr
#1%
}
\def\endgather{\math@cr@@@
\black@\gmaxwidth@\egroup $$\setb@ck\global\@ignoretrue}
\@namedef{endgather*}{\math@cr@@@
\black@\gmaxwidth@\egroup $$\global\@ignoretrue}
\@namedef{gather }#1{%
\gmeasure@{#1}%
\global\dt@ptrue
\if@fleqn %%*F
\advance\gmaxwidth@\@mathmargin %%*F
\fi %%*F
\ifdim\gmaxwidth@>\displaywidth
\let\gdisplaywidth@\gmaxwidth@
\else
\let\gdisplaywidth@\displaywidth
\fi
\tabskip\@mathmargin %%*F
\halign to\displaywidth\bgroup
\ifst@rred\nonumber\else\global\@eqnswtrue\fi
\if@fleqn\else\hfil\fi %%*F
\strut@
\setboxz@h{\global\tag@false$\m@th\displaystyle{##}$}%
\global\gwidth@\wdz@
\global\glineht@\ht\z@
\boxz@
\hfil
\tabskip\@centering %%*F
&\kern-\gdisplaywidth@
\setboxz@h{\strut@{##}}%
\if@fleqn %%*F
\dimen@\@mathmargin %%*F
\else %%*F
\dimen@\displaywidth
\advance\dimen@-\gwidth@
\divide\dimen@\tw@ %%*B
\fi %%*F
\ifdim\dimen@<\tw@\wdz@ %%*
\rlap{\vbox{\normalbaselines\boxz@\vbox to\glineht@{}}}% %%*
\else
\rlap{\boxz@}% %%*
\fi
\tabskip\gdisplaywidth@
\crcr
#1%
}
\def\split{%
\ifinany@\let\next@\insplit@\else
\DN@{\PackageError{amstex}{\string\begin{split} is not allowed
here. Try the `aligned' environment.}\@ehb}\fi
\next@}
\def\insplit@{\global\setbox\z@\vbox\bgroup
\Let@ \restore@math@cr \default@tag % disallow use of \tag here
\ialign\bgroup \hfil\strut@
$\m@th\displaystyle{##}$&$\m@th\displaystyle{{}##}$\hfill\crcr}
\def\endsplit{\crcr\egroup\egroup
\iftagsleft@\expandafter\lendsplit@\else
\expandafter\rendsplit@\fi}
\def\rendsplit@{\global\setbox9 \vbox
{\unvcopy\z@\global\setbox8 \lastbox\unskip}%
\setbox\@ne\hbox{\unhcopy8 \unskip\global\setbox\tw@\lastbox
\unskip\global\setbox\thr@@\lastbox}%
\global\setbox7 \hbox{\unhbox\tw@\unskip}%
\ifinalign@\ifctagsplit@
\gdef\split@{\hbox to\wd\thr@@{}&
\vcenter{\vbox{\moveleft\wd\thr@@\boxz@}}}%
\else\gdef\split@{&\vbox{\moveleft\wd\thr@@\box9}\crcr
\box\thr@@&\box7}\fi
\else
\ifctagsplit@\gdef\split@{\vcenter{\boxz@}}\else
\gdef\split@{\box9\crcr\hbox{\box\thr@@\box7}}\fi
\fi
\aftergroup\split@}
\def\lendsplit@{\global\setbox9\vtop{\unvcopy\z@}%
\setbox\@ne\vbox{\unvcopy\z@\global\setbox8\lastbox}%
\setbox\@ne\hbox{\unhcopy8\unskip\setbox\tw@\lastbox
\unskip\global\setbox\thr@@\lastbox}%
\ifinalign@\ifctagsplit@
\gdef\split@{\hbox to\wd\thr@@{}&
\vcenter{\vbox{\moveleft\wd\thr@@\box9}}}%
\else
\gdef\split@{\hbox to\wd\thr@@{}&\vbox{\moveleft\wd\thr@@\box9}}\fi
\else
\ifctagsplit@\gdef\split@{\vcenter{\box9}}\else
\gdef\split@{\box9}\fi
\fi\aftergroup\split@}
\newdimen\multlinegap
\multlinegap10pt
\newdimen\multlinetaggap@
\multlinetaggap@10pt
\def\multline{%
\ifmmode\nomath@env\DN@{\let\endmultline\relax\@gobble}%
\else $$\DN@{\collect@body\multline@}\fi
\st@rredfalse\@eqnswtrue \@seteqlabel\theequation
\stepcounter{equation}\next@}
\@namedef{multline*}{%
\ifmmode\nomath@env\DN@{\@namedef{endmultline*}{}\@gobble}%
\else $$\DN@{\collect@body\multline@}\fi
\st@rredtrue\@eqnswfalse \let\@currentlabel\@empty
\next@}
\def\multline@{\inany@true\displaybreak@
\global\tag@false
\def\tag{\ifst@rred\else
\global\advance\c@equation\m@ne\fi\tag@in@align}%
\iftagsleft@
\expandafter\lmultline@@\else
\expandafter\rmultline@@\fi}
\newdimen\mwidth@
\def\rmmeasure@#1{%
\def\shoveleft##1{##1}\def\shoveright##1{##1}%
\setbox\@ne\vbox{\firstchoice@false\Let@\halign{\setboxz@h
{$\m@th\@lign\displaystyle{}##$}\global\mwidth@\wdz@
\crcr#1\crcr}}}
\newdimen\mlineht@
\newif\ifzerocr@
\newif\ifonecr@
\def\lmmeasure@#1{\global\zerocr@true\global\onecr@false
\everycr{\noalign{\ifonecr@\global\onecr@false\fi
\ifzerocr@\global\zerocr@false\global\onecr@true\fi}}%
\def\shoveleft##1{##1}\def\shoveright##1{##1}%
\setbox\@ne\vbox{\Let@\firstchoice@false\halign{\setboxz@h
{$\m@th\@lign\displaystyle{}##$}\ifonecr@\global\mwidth@\wdz@
\global\mlineht@\ht\z@\fi\crcr#1\crcr}}}
\newbox\mtagbox@
\newdimen\ltwidth@
\newdimen\rtwidth@
\def\lmultline@@#1{%
\lmmeasure@{#1}%
\setbox\mtagbox@\hbox{%
\iftag@
\df@tag
\else
\if@eqnsw
\global\tag@true
\tagform@\theequation
\fi
\fi
}%
\dimen@\mwidth@
\advance\dimen@\wd\mtagbox@
\advance\dimen@\multlinetaggap@
\if@fleqn %%*F
\advance\dimen@\@mathmargin %%*F
\fi %%*F
\ifdim\dimen@>\displaywidth
\ltwidth@\z@
\else
\ltwidth@\wd\mtagbox@
\fi
\lmultline@@@#1
}
\def\lmultline@@@{%
\displ@y
\def\shoveright##1{##1\hfilneg\hskip\multlinegap}%
\if@fleqn %%*F
\def\shoveleft##1{##1}% %%*F
\else %%*F
\def\shoveleft##1{%
\setboxz@h{$\m@th\displaystyle{}##1$}%
\setbox\@ne\hbox{$\m@th\displaystyle##1$}%
\hfilneg
\iftag@
\ifdim\ltwidth@>\z@
\hskip\ltwidth@
\hskip\multlinetaggap@
\fi
\else
\hskip\multlinegap
\fi
\hskip.5\wd\@ne
\hskip-.5\wdz@##1%
}%
\fi %%*F
\if@fleqn %%*F
\tabskip\@mathmargin %%*F
\else %%*F
\tabskip\z@skip %%*
\fi %%*F
\totwidth@\displaywidth %%*F
\if@fleqn %%*F
\advance\totwidth@-\@mathmargin %%*F
\fi %%*F
\halign\bgroup
\Let@
\let\tag\gobble@tag
\hbox to\totwidth@{% %%*F
\strut@$\m@th\displaystyle
\if@fleqn %%*F
\hskip 0pt plus 1000pt %%*F
\else %%*F
\hfil
\fi %%*F
{}##\hfil$%
}%
\crcr
\if@fleqn %%*F
\hskip-\@mathmargin %%*F
\else %%*F
\hfilneg
\fi %%*F
\iftag@
\ifdim\ltwidth@>\z@
\box\mtagbox@
\hskip\multlinetaggap@
\else
\rlap{%
\vbox{%
\normalbaselines
\hbox{\strut@\box\mtagbox@}%
\vbox to\mlineht@{}%
}%
}%
\hskip\multlinegap %%*
\fi
\else
\hskip\multlinegap
\fi
}
\def\rmultline@@#1{%
\rmmeasure@{#1}%
\setbox\mtagbox@\hbox{%
\iftag@
\df@tag
\else
\if@eqnsw
\global\tag@true
\tagform@\theequation
\fi
\fi
}%
\dimen@\mwidth@
\advance\dimen@\wd\mtagbox@
\advance\dimen@\multlinetaggap@
\if@fleqn %%*F
\advance\dimen@\@mathmargin %%*F
\fi %%*F
\ifdim\dimen@>\displaywidth
\rtwidth@\z@
\else
\rtwidth@\wd\mtagbox@
\fi
\rmultline@@@#1
}
\def\rmultline@@@{%
\displ@y
\def\shoveright##1{%
##1%
\hfilneg
\iftag@
\ifdim\rtwidth@>\z@
\hskip\rtwidth@
\hskip\multlinetaggap@
\fi
\else
\hskip\multlinegap
\fi
}%
\if@fleqn %%*F
\def\shoveleft##1{##1}% %%*F
\else %%*F
\def\shoveleft##1{%
\setboxz@h{$\m@th\displaystyle{}##1$}%
\setbox\@ne\hbox{$\m@th\displaystyle##1$}%
\hfilneg
\hskip\multlinegap
\hskip.5\wd\@ne
\hskip-.5\wdz@
##1%
}%
\fi %%*F
\if@fleqn %%*F
\tabskip\@mathmargin %%*F
\else %%*F
\tabskip\z@skip %%*
\fi %%*F
\totwidth@\displaywidth %%*F
\if@fleqn %%*F
\advance\totwidth@-\@mathmargin %%*F
\fi %%*F
\halign\bgroup
\Let@
\let\tag\gobble@tag
\hbox to\totwidth@{%
\strut@$\m@th\displaystyle
\if@fleqn %%*F
\hskip 0pt plus 1000pt %%*F
\else %%*F
\hfil
\fi %%*F
{}##\hfil$%
}%
\crcr
\if@fleqn %%*F
\hskip-\@mathmargin %%*F
\else %%*F
\hfilneg
\fi %%*F
\hskip\multlinegap
}
\def\endmultline{\iftagsleft@\expandafter\lendmultline@\else
\expandafter\rendmultline@\fi\global\@ignoretrue}
\expandafter\let\csname endmultline*\endcsname=\endmultline
\def\lendmultline@{\hfilneg\hskip\multlinegap\crcr\egroup$$}
\def\rendmultline@{%
\iftag@
\ifdim\rtwidth@>\z@
\hskip\multlinetaggap@
\box\mtagbox@
\else
\hskip\multlinegap %%*
\llap{%
\vtop{%
\@movetag %%*T
\normalbaselines\null\hbox{\strut@\box\mtagbox@}%
}%
}%
\fi
\else
\hskip\multlinegap
\fi
\hfilneg
\crcr
\egroup$$%
}
\expandafter\def
\expandafter\@arrayparboxrestore
\expandafter{\@arrayparboxrestore
\inany@false\ingather@false\inalign@false
\default@tag}
\def\equation{\gather\def\\{\PackageError{amstex}{\Invalid@@\\}\@eha}}
\def\endequation{\endgather}
\newenvironment{equation*}{%
\equation
}{%
\nonumber\endequation
}
\newcounter{parentequation}% Counter for ``parent equation''.
\newenvironment{subequations}[1]{%
\refstepcounter{equation}%
\begingroup % conservative approach
\let\protect\noexpand
\edef\@tempa{\def\noexpand\theparentequation{\theequation}}%
\expandafter\endgroup\@tempa
\setcounter{parentequation}{\value{equation}}%
\setcounter{equation}{0}%
\toks@\ifx#11{\arabic}%
\else\ifx#1i{\roman}\else\ifx#1I{\Roman}%
\else\ifx#1A{\Alph}\else\ifx#1a{\alph}%
\else\ifx#1f{\fnsymbol}%
\else{}\fi\fi\fi\fi\fi\fi
\edef\@tempa{\the\toks@}%
\ifx\@tempa\@empty \@badnumtype{#1}\toks@{\alph}\fi
\edef\theequation{\noexpand\theparentequation
\the\toks@{equation}}%
\ignorespaces
}{%
\setcounter{equation}{\value{parentequation}}%
\global\@ignoretrue
}
\def\@badnumtype#1{%
\PackageError{amstex}{Unknown number type: `#1'}\@ehc}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\atdef@#1{\expandafter\def\csname\space @\string#1\endcsname}
\begingroup \catcode`\@=\active
\gdef @{\Iat}
\endgroup
\DeclareRobustCommand{\Iat}{\FN@\at@}
\def\at@{\let\next@\at@@
\ifcat\noexpand\@let@token a\else
\ifcat\noexpand\@let@token0\else
\ifcat\noexpand\@let@token\relax\else
\let\@let@token@\at@@@\fi\fi\fi\next@}
\def\at@@#1{\expandafter
\@ifundefined{ @\string#1}%
{\DN@{\at@@@#1}}%
{\DN@{\csname\space @\string#1\endcsname}}%
\next@}%
\def\at@@@{\PackageError{amstex}{\Invalid@@ @}%
{\the\athelp@}% "I'll assume you wanted @@"
\char64\relax}
\newhelp\athelp@
{Only certain combinations beginning with @ make sense to me.^^J%
I'll assume you wanted @@ for a printed @.}
\atdef@ @{{\atchar}}% to define @@
\chardef\atchar=64
\def\makeatother{\catcode64=\active}
\def\@tempa#1#2#3#4#5#6{%
{#1}{#2}\ifnum0#6=0{13}\@xp\@gobblefour
\else{#3}\fi\@tempa{#4}{#5}{#6}}%
\xdef\@currnamestack{\@xp\@tempa\@currnamestack{}{}{0}}
{\def\@makeother{\noexpand\@makeother\noexpand}
\xdef\@sanitize{\@sanitize\@makeother\@}}
{\def\do{\noexpand\do\noexpand}
\xdef\dospecials{\dospecials\do\@}}
\atdef@,{\ifmmode\mskip.1\thinmuskip\else \nonmatherr@{@,}\fi}
\atdef@!{\RIfM@\mskip-.1\thinmuskip\else \nonmatherr@{@!}\fi}
\@ifpackageloaded{amscd}{%
}{%
\atdef@>#1>#2>{%
\global\bigaw@\minaw@
\setboxz@h{$\m@th\scriptstyle\;{#1}\;\;$}%
\ifdim\wdz@>\bigaw@ \global\bigaw@\wdz@ \fi
\@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;{#2}\;\;$}%
\ifdim\wd\@ne>\bigaw@ \global\bigaw@\wd\@ne \fi}%
\mathrel{\mathop{\hbox to\bigaw@{\rightarrowfill@\displaystyle}}%
\limits^{#1}\@ifnotempty{#2}{_{#2}}}%
}% end of @>>>
\atdef@<#1<#2<{%
\global\bigaw@\minaw@
\setboxz@h{$\m@th\scriptstyle\;\;{#1}\;$}%
\ifdim\wdz@>\bigaw@ \global\bigaw@\wdz@ \fi
\@ifnotempty{#2}{\setbox\@ne\hbox{$\m@th\scriptstyle\;\;{#2}\;$}%
\ifdim\wd\@ne>\bigaw@ \global\bigaw@\wd\@ne \fi}%
\mathrel{\mathop{\hbox to\bigaw@{\leftarrowfill@\displaystyle}}%
\limits^{#1}\@ifnotempty{#2}{_{#2}}}%
}% end of @<<<
}% end of @ifpackageloaded
\@ifundefined{minaw@}{\newdimen\minaw@}{}
\minaw@11.111pt
\@ifundefined{bigaw@}{\newdimen\bigaw@}{}
\atdef@-{\let\next-%%
\DN@{\ifx\next-%%
\def\next-{\setbox\z@\hbox{-}\unhbox\z@\FN@\next@}%%
\expandafter\next \else\nobreak\fi}%%
\next@-}%%
\def\leftroot{\PackageError{amstex}{\Invalid@@\leftroot}\@eha}
\def\uproot{\PackageError{amstex}{\Invalid@@\uproot}\@eha}
\newcount\uproot@
\newcount\leftroot@
\def\root{\relaxnext@
\DN@{\ifx\@let@token\uproot\let\next@\nextii@\else
\ifx\@let@token\leftroot\let\next@\nextiii@\else
\let\next@\plainroot@\fi\fi\next@}%
\def\nextii@\uproot##1{\uproot@##1\relax\FN@\nextiv@}%
\def\nextiv@{\ifx\@let@token\@sptoken\DN@. {\FN@\nextv@}\else
\DN@.{\FN@\nextv@}\fi\next@.}%
\def\nextv@{\ifx\@let@token\leftroot\let\next@\nextvi@\else
\let\next@\plainroot@\fi\next@}%
\def\nextvi@\leftroot##1{\leftroot@##1\relax\plainroot@}%
\def\nextiii@\leftroot##1{\leftroot@##1\relax\FN@\nextvii@}%
\def\nextvii@{\ifx\@let@token\@sptoken
\DN@. {\FN@\nextviii@}\else
\DN@.{\FN@\nextviii@}\fi\next@.}%
\def\nextviii@{\ifx\@let@token\uproot\let\next@\nextix@\else
\let\next@\plainroot@\fi\next@}%
\def\nextix@\uproot##1{\uproot@##1\relax\plainroot@}%
\bgroup\uproot@\z@\leftroot@\z@\FN@\next@}
\def\plainroot@#1\of#2{\setbox\rootbox\hbox{%
$\m@th\scriptscriptstyle{#1}$}%
\mathchoice{\r@@t\displaystyle{#2}}{\r@@t\textstyle{#2}}
{\r@@t\scriptstyle{#2}}{\r@@t\scriptscriptstyle{#2}}\egroup}
\def\r@@t#1#2{\setboxz@h{$\m@th#1\@@sqrt{#2}$}%
\dimen@\ht\z@\advance\dimen@-\dp\z@
\setbox\@ne\hbox{$\m@th#1\mskip\uproot@ mu$}%
\advance\dimen@ by1.667\wd\@ne
\mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@\copy\rootbox
\mkern-10mu\mkern\leftroot@ mu\boxz@}
\endinput
%%
%% End of file `amstex.sty'.